min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
-1(s(x), s(y)) → -1(x, y)
GCD(s(x), y, s(z)) → MIN(x, z)
GCD(x, s(y), s(z)) → -1(max(y, z), min(y, z))
GCD(s(x), y, s(z)) → MAX(x, z)
MIN(s(x), s(y)) → MIN(x, y)
GCD(s(x), y, s(z)) → -1(max(x, z), min(x, z))
GCD(s(x), s(y), z) → MAX(x, y)
GCD(s(x), s(y), z) → MIN(x, y)
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), s(y), z) → -1(max(x, y), min(x, y))
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
MAX(s(x), s(y)) → MAX(x, y)
GCD(x, s(y), s(z)) → GCD(x, -(max(y, z), min(y, z)), s(min(y, z)))
GCD(x, s(y), s(z)) → MAX(y, z)
GCD(x, s(y), s(z)) → MIN(y, z)
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
-1(s(x), s(y)) → -1(x, y)
GCD(s(x), y, s(z)) → MIN(x, z)
GCD(x, s(y), s(z)) → -1(max(y, z), min(y, z))
GCD(s(x), y, s(z)) → MAX(x, z)
MIN(s(x), s(y)) → MIN(x, y)
GCD(s(x), y, s(z)) → -1(max(x, z), min(x, z))
GCD(s(x), s(y), z) → MAX(x, y)
GCD(s(x), s(y), z) → MIN(x, y)
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), s(y), z) → -1(max(x, y), min(x, y))
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
MAX(s(x), s(y)) → MAX(x, y)
GCD(x, s(y), s(z)) → GCD(x, -(max(y, z), min(y, z)), s(min(y, z)))
GCD(x, s(y), s(z)) → MAX(y, z)
GCD(x, s(y), s(z)) → MIN(y, z)
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
-1(s(x), s(y)) → -1(x, y)
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
-1(s(x), s(y)) → -1(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
MAX(s(x), s(y)) → MAX(x, y)
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
MAX(s(x), s(y)) → MAX(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
MIN(s(x), s(y)) → MIN(x, y)
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
MIN(s(x), s(y)) → MIN(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
GCD(x, s(y), s(z)) → GCD(x, -(max(y, z), min(y, z)), s(min(y, z)))
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GCD(x, s(y), s(z)) → GCD(x, -(max(y, z), min(y, z)), s(min(y, z)))
Used ordering: Polynomial interpretation with max and min functions [25]:
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
POL(-(x1, x2)) = x1
POL(0) = 0
POL(GCD(x1, x2, x3)) = x2 + x3
POL(max(x1, x2)) = max(x1, x2)
POL(min(x1, x2)) = min(x1, x2)
POL(s(x1)) = 1 + x1
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
max(x, 0) → x
max(0, y) → y
-(s(x), s(y)) → -(x, y)
min(x, 0) → 0
min(s(x), s(y)) → s(min(x, y))
min(0, y) → 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GCD(s(x), s(y), z) → GCD(-(max(x, y), min(x, y)), s(min(x, y)), z)
GCD(s(x), y, s(z)) → GCD(-(max(x, z), min(x, z)), y, s(min(x, z)))
POL(-(x1, x2)) = x1
POL(0) = 0
POL(GCD(x1, x2, x3)) = x1 + x2 + x3
POL(max(x1, x2)) = max(x1, x2)
POL(min(x1, x2)) = min(x1, x2)
POL(s(x1)) = 1 + x1
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
max(x, 0) → x
max(0, y) → y
-(s(x), s(y)) → -(x, y)
min(x, 0) → 0
min(s(x), s(y)) → s(min(x, y))
min(0, y) → 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
min(x, 0) → 0
min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))
max(x, 0) → x
max(0, y) → y
max(s(x), s(y)) → s(max(x, y))
-(x, 0) → x
-(s(x), s(y)) → -(x, y)
gcd(s(x), s(y), z) → gcd(-(max(x, y), min(x, y)), s(min(x, y)), z)
gcd(x, s(y), s(z)) → gcd(x, -(max(y, z), min(y, z)), s(min(y, z)))
gcd(s(x), y, s(z)) → gcd(-(max(x, z), min(x, z)), y, s(min(x, z)))
gcd(x, 0, 0) → x
gcd(0, y, 0) → y
gcd(0, 0, z) → z